package pe.bf.extranet.dao;

import java.math.BigInteger;
import java.sql.SQLException;
import java.util.List;

import javax.sql.rowset.serial.SerialException;

import pe.bf.domain.bean.Abono;
import pe.bf.domain.bean.Empleado;
import pe.bf.domain.bean.SolicitudAbono;
import pe.bf.domain.exceptions.DomainException;

public interface SolicitudAbonoDAO {

	/**
	 * 
	 * @param solicitudAbono
	 * @throws DomainException
	 */
	public List<String> createSolicitudAbono(SolicitudAbono solicitudAbono)
			throws DomainException, SerialException, SQLException ;

	
	public List<String> createDetalleSolicitudAbono(List<Abono> detalle,long id)
			throws DomainException;
	
 
	
	/**
	 * 
	 * @param solicitudAbono
	 * @throws DomainException
	 */
	public void actualizarSolicitudAbono(SolicitudAbono solicitudAbono)
			throws DomainException;

	/**
	 * 
	 * @param solicitudAbono
	 * @throws DomainException
	 */
	public void eliminarSolicitudAbono(SolicitudAbono solicitudAbono)
			throws DomainException;

	/**
	 * 
	 * @return
	 * @throws DomainException
	 */
	public List<SolicitudAbono> listarSolicitudAbono()
			throws DomainException;

	/**
	 * 
	 * @param codigoEmpresa
	 * @return
	 * @throws DomainException
	 */
	public List<SolicitudAbono> listarSolicitudAbonoPorEmpresa(
			BigInteger codigoEmpresa) throws DomainException;

	/**
	 * 
	 * @param codigoEmpresa
	 * @param codigoSolicitudAbono
	 * @return
	 * @throws DomainException
	 */
	public List<Abono> listarDetalleSolicitudAbono(
			BigInteger codigoEmpresa, BigInteger codigoSolicitudAbono)
			throws DomainException;

}
